1. Technical Field
The present invention relates to computer job management on a supercomputer. In particular, the present invention relates to efficiently dispatching computer jobs to computation elements or nodes of a supercomputer.
2. Description of the Related Art
Early computers would process a single program or computer job one program or job at a time since such computers consisted of a single central processing unit (cpu). As technology progressed, computers began to include multiple CPU's to increase computational capability.
Modern supercomputers include many computational elements or computational nodes where each computational node includes one or more CPUs and other computational resources such as memory of varying sizes, network connections involving network adapters, and other special-purpose computational hardware and software. These computational nodes provide the capability to execute many computational tasks at the same time making possible the execution of several jobs simultaneously across the numerous computational nodes. Job scheduling is the task of determining which computational nodes are available for the execution of the job. On these supercomputers, scheduling computer jobs is becoming more difficult because of the increasing number of computational nodes, the increasing complexity of these nodes and the increasing complexity of the computer jobs.